﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime;
using System.Globalization;

namespace Gin
{
    /// <summary>
    /// Текстовая информация о команде, используется при визуальном построении списка команд
    /// </summary>
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public class GinNameAttribute : Attribute
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public string Group { get; set; }
    }

    
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
    public class GinArgumentAttribute : Attribute
    { 
    }

    public class GinArgumentBrowseFileAttribute : GinArgumentAttribute
    {
        public bool AllowMultiple { get; set; }
        public string Extensions { get; set; }
        public string StartFolder { get; set; }
    }

    public class GinArgumentTextAttribute : GinArgumentAttribute
    {
        public int MaxLength { get; set; }
        public bool Multiline { get; set; }
    }

    public class GinArgumentCommandAttribute : GinArgumentAttribute
    {
        public bool AllowMultiple { get; set; }
    }

    public class GinArgumentUIControlAttribute : GinArgumentAttribute
    {
        public bool AllowMultiple { get; set; }
    }

    /// <summary>
    /// Тип, объявленный в плагине игнорируется при построении инсталлятором списка команд
    /// </summary>
    public class GinIgnoreTypeAttribute : Attribute
    {
    }

}
